home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
FM Towns: Software Contest 3
/
FM Towns Software Contest 3.iso
/
exp
/
astral
/
a1
/
game
/
wire004.doc
< prev
Wrap
Text File
|
1994-01-07
|
5KB
|
182 lines
=============================================================================
FM-TOWNS ワイヤーフレーム3Dパッケージ
バージョン 0.04
ファイル名:
WIRE3D_C.OBJ
LINE.OBJ
CLEAR.OBJ
SPACE.OBJ
STAR.OBJ
その他ソースファイル,サンプルプログラム等
対応機種:
FM-TOWNSシリーズ
(動作確認:FM-TOWNS 20F)
作者:
BBS00193 Private Net
PON454 PON-NET
OTK00004 いちたくNET
#220 PANIX3
だるま(伊藤 孝)
東海高校電波科学研究部マイコン班所属
=============================================================================
前にUPしたものは様々なバグのために、とても実用に耐えるものではありませんで
したが、今度こそは大丈夫です。(本当かな~?(^^;))
● プログラムの内容
ワイヤーフレームによる、3次元空間の表示プログラムです。
物体データと空間データ、視点データを別々に持っているので、何も小細工なしで自
由な空間を表現できます。
● 使用方法
このプログラムはサブルーチンの集まりですので、そのままでは動きません。
あなたのプログラムに組み込んで使ってください。
組み込み方は、
ソースに"#include "wire3d.h"の一行を追加
リンク時に4つのオブジェクトも併せてリンクする
です。
また、Cの部分はソースのままですので、
RUN386 HCD386P ファイル名
としてコンパイルしてください。オプションはいりません。
また、このプログラムは256*512,32768色のモード専用です。
画面を初期化していないので、自前でやってください。
では、詳しい使い方を説明しましょう。
まずはグローバル変数の設定です。
WIRE_SPACE Space[空間上の最大物体数]
どの位置にどの物体があって、どちらを向いているか を定義します。
WIRE_OBJECT Object[定義する物体数]
物体の形を定義します
SCREEN_LOCATE Screen[空間上の最大物体数]
物体の画面上での座標が入ります
という3つのグローバル変数の定義が必要です。
それぞれの内容は、ヘッダファイルやサンプルを見れば分かると思います。
また、大きさ3の配列は(Angle[3],Locate[3]など)
[0]=x
[1]=y
[2]=z
を表しています。
ちなみに、角度は 0-359 ではなく 0-255 ですので、お間違えのないよう。
定義した物体の表示は、
wirespace(視点の角度,視点の位置,空間上にある物体の数,表示ページ);
で行います。
ここで注意してほしいのは、表示ページは画面レイアのことではないということです。
具体的には、
レイア0 +--------+ 0
| 0 |
| |
+--------+ 256
| 1 |
| |
+--------+ 511
0 255
レイア1 +--------+ 0
| 2 |
| |
+--------+ 256
| 3 |
| |
+--------+ 511
0 255
というふうになっています。
これは使用したラインルーチンの仕様です。
また、画面の消去は行っていないので
clear_screen(ページ);
で消去してください。
他にもいろいろ関数がありますが、説明は省略します(^^;)。
あと、ソースやヘッダファイルにも使い方が書いてありますので、そちらも参照して
ください(^^)。
● サンプルプログラムについて
RUN386 TEST
完全なオートデモです。右クリックで終了です。
またマウスと左クリックで照準移動とレーザー発射が出来ますが、ただのジョークで
すので気にしないでください(^^;)。
コナミさん&ナムコさん、ごめんなさいっっっっっ。
● 著作権
このプログラムの著作権は作者が所持しておりますが、個人使用の範囲内ならば自由
に使用していただいて結構です。
また、今のところ単独での再配布は御遠慮下さい。
また、このプログラムで使用しているラインルーチンは、フリーソフトウェアコレク
ション4から転載したもので(◎h!FMグラフィックコマンド集2)、
1.「EAST」がプログラミングしたものであること
2.◎h!FM '90年4月号(Oh!FM TOWNSの前身)に掲載された
ものであること
3.作者の自由転載許可に基づいて転載・配布したものであること
を,説明用のテキストに明記すること という条件の下で転載・使用しています。
このサブルーチンを組み込んだプログラム(EXPファイル)の配布は自由ですが、
以上の著作権表示をドキュメントなどに明記してください。特にラインルーチンは私
のものではないので、注意してください。
● History
バージョン 0.01 第1回UP版(Private Net
バージョン 0.02 第2回UP版(Private Net)
表示の優先順位が狂うバグを修正
三角関数のテーブルを16ビットから8ビットに変更
空間の広さを(65536,65536)から(16777216,16777216)に変更
バージョン 0.03 第三回UP版(いちたくNet)
背景(宇宙空間)表示ルーチンを追加
三角関数のテーブルをcharからintに変更(8ビットのまま)
空間の広さを変更。(前回はバグで変更されていなかった(^^;))
三次元クリッピングで、手前の消失点を変更可能にした
バージョン 0.04 現バージョン
● 終わりに
実はこのサブルーチン集を使用した、「スターブレード」のようなゲームを制作する
予定です。というか、このサブルーチンはそのために作ったものです。出来たらまた
UPしようと思いますが、一体いつになることやら。
それでは質問、バグなどがありましたらメールをお願いします。
うーん、もっとしっかりした説明を用意せねば(^^;(^^;(^^;)。
あと、ラインルーチンを自作のものにしないとまずいですね。
-だるま-